package br.com.wepa.webapps.orca.visual.client;

import java.util.List;

import com.google.gwt.user.client.rpc.IsSerializable;

public class MenuItemVisual implements IsSerializable {	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String label;	
	private String action;	
	private MenuItemVisual pai;
	private int ordem;

	/**
    * This field is a List that must always contain  
    * @gwt.typeArgs <br.com.wepa.webapps.orca.visual.client.MenuItemVisual>
    */	  
	private List filhos;
	
	public MenuItemVisual(String label,String action){
		this.label = label;
		this.action = action;
	}
	public MenuItemVisual(){
		
	}
	
	public List getFilhos() {
		return filhos;
	}
	public void setFilhos(List filhos) {
		this.filhos = filhos;
	}
	
	
	public void addFilho(MenuItemVisual i) {
		getFilhos().add(i);
	}
	
	public void addFilhos(List all) {
		if(all!=null){
			getFilhos().addAll(all);
		}
	}	
	public void removeFilho(MenuItemVisual i) {
		getFilhos().remove(i);
	}
	
	public String getLabel() {
		return label;
	}
	public void setLabel(String label) {
		this.label = label;
	}
	public MenuItemVisual getPai() {
		return pai;
	}
	public void setPai(MenuItemVisual pai) {
		this.pai = pai;
	}
	public String getAction() {
		return action;
	}
	public void setAction(String action) {
		this.action = action;
	}
	
	public boolean equals(Object obj) {
		if (obj instanceof MenuItemVisual) {
			MenuItemVisual a = (MenuItemVisual) obj;
			if(this.label == null){
				return this.label == a.label;
			}else{
				return this.label.equals(a.label);		
			}
		}
		return false;
	}
	
	
	public String toString() {	
		return "label=" + label + " action=" +action;
	}
	public int getOrdem() {
		return ordem;
	}
	public void setOrdem(int ordem) {
		this.ordem = ordem;
	}
	
	
}
